// 封装 axios 请求模块
import axios from "axios"
// 把容器模块加载进来
// 非组件模块中获取 store 必须通过这种方法引入
// 这里单独加载 store, 和组件中的 this.$store 是一个东西
import store from "@/store/"
const request = axios.create({
    baseURL: "http://ttapi.research.itcast.cn/" // 基础路径
})

// 请求拦截器
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  const { user } = store.state
  // 如果用户已经登录, 统一给接口设置 token 信息
  if(user) {
    config.headers.Authorization = `Bearer ${user.token}`
  }
  // 处理完之后一定把 config 返回出去, 否则请求就发不出去了,就会停在这里
  // 这个就相当于放行的标志
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});
// 响应拦截器

// 导出
export default request